# 列表常见操作
# 添加元素
li_0 = [1, 2, 3, 4, 5, "hello"]
li_0.append("kia")  # 列表整体添加
print(li_0)
li_0.extend("four")  # 列表分散添加，参数必须是可迭代对象譬如列表，字符串等
print(li_0)
li_0.insert(3, "five")  # 列表指定位置添加
print(li_0)
# li_0.insert("five")  # 不添加位置报错

# 修改元素，直接下标修改
li_1 = [1, 2, 3]
li_1[2] = "hello"
print(li_1)

# 查询元素
# in: 判断元素是否在列表内，如果存在就返回True，不存在就返回False
# not in: 判断元素是否存在列表内，如果存在就返回False，不存在就返回False
li_2 = [1, 2, 3, 4, 5, 6, 7, 4]
print(1 in li_2)
print(1 not in li_2)
# index：返回元素在列表中首次出现的下标
# count：返回元素在列表出现的次数
print(li_2.index(4))
print(li_2.count(4))


# 删除元素
# del 全局方法
li_3 = [7, 8, 9, 10]
# del li_3 直接删除li_3
del li_3[0]  # 删除指定下标元素
print(li_3)
# pop 删除指定下标元素
li_3.pop(0)
print(li_3)
# remove 删除指定元素,重复元素删第一个
li_3.append(9)
li_3.remove(9)
print(li_3)


# 排序
# sort:从小到大排序
# reverse: 倒序


# 列表推导式
# 格式1：[表达式 for 变量 in 列表]
# 注意: in 后面不仅可以放列表，还可以是range()、可迭代对象等。
li_4 = [1, 2, 3, 4, 5, 6]
[print(i) for i in li_4]
# 格式2：[表达式 for 变量 in 列表 if 条件]
li_5 = []
[li_5.append(i) for i in range(1, 20) if (i%2) != 0] # 输出奇数
print(li_5)


# 列表嵌套
li_6 = [1, 2, 3, [4, 5, 6]]
print(li_6[3])
print(li_6[3][2])


